A computer system used to process or store data includes various processing elements (components). In a computer system including plural computers coupled to each other through a network, for example, the computers may serve as components of the computer system. A control device, a storage device, a communication device, a power device, and the like mounted on each computer may serve as components of the computer.
Each of the aforementioned components operates, for example, in accordance with firmware previously set up depending on functions to be provided by the component, for example. The firmware is an example of control programs controlling operations of the components. In many computer systems, plural components work collaboratively. Accordingly, updating firmware set up in one of the components may influence the operation of another component in some cases.
Firmware of the components is updated as appropriate to improve the functions and security. To avoid a risk that update of firmware of some components destabilizes operations of the other components and causes a failure, there is a method of updating firmware of all the relevant components at the same time, for example.
However, if the firmware of plural components is updated at the same time but in an incorrect order, the firmware of some components may fail to be updated correctly, and the components may not operate correctly after the update.
As a method of updating firmware of plural image processing apparatuses, a method is proposed which determines update priority based on a function to be updated. In another proposed method, the update priority is determined based on compatibility between engine firmware and an update module. Moreover, a method is also proposed which determines a proper time to reboot an electronic device in the process of updating the firmware of the electronic device. In this method, the time proper to reboot the electronic device is determined depending on the conditions of the electronic device (time period taken to execute a process being executed or the like). Examples disclosed as related art include Japanese Laid-open Patent Publication Nos. 2014-167692 and 2012-73862, Japanese National Publication of International Patent Application No. 2005-502971, and others.
In the case where the update priority is given as described above, successive update processes are executed by: setting a waiting time for a subsequent update process to a time obtained by adding a margin to a predicted value of a time period taken to execute the preceding update process; and starting the subsequent update process upon lapse of the set waiting time after the preceding update process starts. In a computer system requested to achieve high reliability, the margin is set long to reduce the risk of failure in updating firmware. Accordingly, it takes long to update the firmware. It is therefore desirable to speed up update of all the control programs at the same time.